<?php

namespace App\Api\Traits\Orm;

trait BaseOrmTrait
{
    use ScopeTrait;

    /**
     * 带忽略字段新增
     * @param array $attributes
     * @param array $ignores
     * @return bool
     */
    protected function ignoresSave(array $attributes = [], array $ignores = []): bool
    {
        if ($ignores)
            foreach ($ignores as $ignore) {
                unset($attributes[$ignore]);
            }
        return $this->newModelInstance($attributes)->save();
    }

    /**
     * @exp 更新带过滤
     * @param array $attributes
     * @param array $noupdate
     * @return int
     */
    public function edit(array $attributes, array $noupdate = []): int
    {
        if (!isset($attributes['id']) || !$attributes['id'])
            return false;
        $model = $this->findOrFail($attributes['id']);
        if ($noupdate) {
            foreach ($noupdate as $v) {
                unset($attributes[$v]);
            }
        }
        return $model->update($attributes);
    }
}
